/**
 * 
 */
package com.obradovicnjegovan.webprodavnica.pages.admin;

import java.io.File;
import java.util.List;

import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.hibernate.annotations.CommitAfter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.upload.services.UploadedFile;

import com.obradovicnjegovan.webprodavnica.controller.ControllerAL;
import com.obradovicnjegovan.webprodavnica.entities.Kategorija;
import com.obradovicnjegovan.webprodavnica.entities.Proizvod;

/**
 * @author njegovan
 *
 */
public class AzurirajProizvod {
	@Inject
	private ControllerAL controllerAL;
	@Property
	private Kategorija kategorija;
	@Property
	private String naziv;
	@Property
	private String opis;
	@Property
	private int stanje;
	@Property
	private double cena;
	@InjectComponent
	private Form createProizvod;
	@Property
    private UploadedFile file;
	@Persist
	private Proizvod proizvod;
	
	public Proizvod getProizvod() {
		return proizvod;
	}
	public void setProizvod(Proizvod proizvod) {
		this.proizvod = proizvod;
	}

	void onActivate(){
		kategorija = proizvod.getKategorija();
		naziv = proizvod.getNazivProizvoda();
		opis = proizvod.getOpisProizvoda();
		stanje = proizvod.getStanjeNaZalihama();
		cena = proizvod.getCena();
	}
	
	@CommitAfter
	public Object onSubmitFromCreateProizvod(){
		try {
			File copied = new File("src/main/webapp/layout/images/" + file.getFileName());
	        file.write(copied);
			proizvod.setNazivProizvoda(naziv);
			proizvod.setOpisProizvoda(opis);
			proizvod.setStanjeNaZalihama(stanje);
			proizvod.setCena(cena);
			proizvod.setPrezentacionaSlika("layout/images/" + file.getFileName());
			proizvod.setKategorija(kategorija);
			controllerAL.sacuvajProizvod(proizvod);
			return Proizvodi.class;
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<Kategorija> getKategorije(){
		return controllerAL.pronadjiSveKategorije();
	}
}